Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Image validation rule #670

Merged
merged 24 commits into from Mar 28, 2024
Merged

Add Image validation rule #670

merged 24 commits into from Mar 28, 2024

Conversation

vjik
Copy link
Member

@vjik vjik commented Mar 23, 2024

Q A
Is bugfix?
New feature? ✔️
Breaks BC?
Fixed issues

Copy link

what-the-diff bot commented Mar 23, 2024

PR Summary

  • Changelog Documentation Update
    An entry has been made to the CHANGELOG.md file. This acts as the recording log of changes made.
  • File Information in Composer Checker
    The composer-require-checker.json file has been updated to include "fileinfo".
  • PSR HTTP Message Dependency in Composer
    The composer.json file has received an update to include the "psr/http-message", a fundamental component for handling HTTP messages.
  • New Image Rule File
    A new Image rule file has been introduced. This is a central rule set related to image handling.
  • New ImageHandler File
    A new ImageHandler file has been introduced. It will provide a programmatic interface to manipulate or otherwise interact with images.
  • RuleTestCase Update
    Updates have been made to the RuleTestCase file, presumably improving or amplifying test coverage.
  • CompareTest Update
    The CompareTest file has been updated, which likely means refinement in testing procedures for comparison-related functionalities.
  • New Images Addition
    New 16x18.jpg and 16x18.png images have been introduced.
  • New ImageTest File
    A new ImageTest file has been created. This suggests that an enhanced testing process is set up for image-related operations/features.

Copy link

codecov bot commented Mar 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

❗ No coverage uploaded for pull request base (1.x@d9a7bf7). Click here to learn what that means.

Additional details and impacted files
@@          Coverage Diff           @@
##             1.x     #670   +/-   ##
======================================
  Coverage       ?   94.94%           
  Complexity     ?      835           
======================================
  Files          ?       96           
  Lines          ?     2553           
  Branches       ?        0           
======================================
  Hits           ?     2424           
  Misses         ?      129           
  Partials       ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

src/Rule/ImageHandler.php Outdated Show resolved Hide resolved
src/Rule/Image.php Outdated Show resolved Hide resolved
src/Rule/Image.php Outdated Show resolved Hide resolved
src/Rule/ImageHandler.php Outdated Show resolved Hide resolved
@arogachev arogachev self-requested a review March 26, 2024 07:38
@arogachev arogachev added the type:feature New feature label Mar 26, 2024
@arogachev arogachev added this to the 1.3 milestone Mar 26, 2024
private ?int $maxWidth = null,
private ?int $maxHeight = null,
private string $notImageMessage = 'The value must be an image.',
private string $notExactlyWidthMessage = 'The width of image "{attribute}" must be exactly {exactly, number} {exactly, plural, one{pixel} other{pixels}}.',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validating aspect ratio is quite a popular case too. Can be added iteratively in a separate PR.

src/Rule/Image.php Outdated Show resolved Hide resolved
@arogachev
Copy link
Contributor

Docs related additions - #671.

CHANGELOG.md Outdated Show resolved Hide resolved
@vjik vjik added the status:under development Someone is working on a pull request. label Mar 26, 2024
@vjik vjik added status:code review The pull request needs review. and removed status:under development Someone is working on a pull request. labels Mar 26, 2024
@vjik vjik requested a review from a team March 26, 2024 13:16
src/Rule/Image/Image.php Outdated Show resolved Hide resolved
src/Rule/Image/ImageHandler.php Outdated Show resolved Hide resolved
src/Rule/Image/ImageHandler.php Outdated Show resolved Hide resolved
vjik and others added 3 commits March 28, 2024 14:42
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>
@vjik vjik merged commit 66cfeae into 1.x Mar 28, 2024
34 of 35 checks passed
@vjik vjik deleted the image-validator branch March 28, 2024 11:49
arogachev added a commit that referenced this pull request May 23, 2024
* update irc link (#663)

* update docs folder link (#666)

* Add methods `addErrorWithFormatOnly()` and `addErrorWithoutPostProcessing()` to `Result` object (#665)

* Clarify psalm types in `Result` (#668)

* Update result docs (#676)

* Add `Image` validation rule (#670)

Co-authored-by: Alexey Rogachev <arogachev90@gmail.com>
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>

* Add missed params to `Image` rule options (#680)

* Add date rules (#678)

Co-authored-by: Alexander Makarov <sam@rmcreative.ru>

* Add aspect ratio support to `Image` rule (#681)

* Add aspect ratio support to `Image` rule

* Apply fixes from StyleCI

* Code coverage, mutants

* Add detailed test cases' descriptions in data providers

* Change placeholders

* Work with options

* Work with options 2

* More configuration checks

* Fix logic, add PHPDoc

* Use value object for aspect ratio

* Actualize fix for mutant for absolute margin

* Fix error messages

* Fix new mutants

* Update src/Rule/Image/ImageAspectRatio.php

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Do not use dedicated container in tests, fix last mutant

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Release version 1.3.0

* Prepare for next release

* Update guides in english and Translate guides into Brazilian Portuguese  (#691)

* Add `Result::add()` method for merging other results to the base one (#686)

* Add `Result::add()` method for merging other results to the base one

* Apply fixes from StyleCI

* Update PR template [skip ci]

* Update src/Result.php

Co-authored-by: Alexander Makarov <sam@rmcreative.ru>

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>

* Add type rules and `Any` rule (#692)

* Add type rules and handlers

* Apply fixes from StyleCI

* Mention in the docs + basic tests

* Apply fixes from StyleCI

* Fix copy paste [skip ci]

* Test error message

* Update changelog [skip ci]

* Update PHPDoc [skip ci]

* More tests and descriptions

* Apply fixes from StyleCI

* Include type in error message

* Add Any rule

* Apply fixes from StyleCI

* Update changelog [skip ci]

* Note [skip ci]

* Add translations [skip ci]

* Fix tests

* Test attributes

* Extract PHP >= 8.1 specific tests

* Apply fixes from StyleCI

* Extract PHP >= 8.1 specific tests 2

* Fix mutant

* Update CHANGELOG.md

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Rename Any to AnyRule (review)

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Rename `Any` rule in docs (#699)

* Rename AnyHandler (remaining occurence) (#701)

* Add methods for getting first error messages to `Result` (#697)

* Add methods for getting first error messages to `Result`

* Bump coverage

* Update src/Result.php

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Update src/Result.php

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Apply fixes from StyleCI

* Remove newline [skip ci]

* Add changelog entry [skip ci]

---------

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>
Co-authored-by: StyleCI Bot <bot@styleci.io>

* Translate Each rule docs into Russian (#688)

* Add `Unique` rule (#695)

* Add Unique rule

* Apply fixes from StyleCI

* More tests, messages [WIP]

* Apply fixes from StyleCI

* Test traslated attributes

* Test using as attribute

* Ready for review

* Apply fixes from StyleCI

* Update src/Rule/UniqueHandler.php

Co-authored-by: Dmitriy Derepko <xepozz@list.ru>

* Apply fixes from StyleCI

* Slightly different approach

* Apply fixes from StyleCI

* New test case to check strict equality

* Different approach

* Minor adjustments

* Remove comma, rename

* Update changelog [skip ci]

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Dmitriy Derepko <xepozz@list.ru>
Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Fix typo in array shape (#705)

* Fix docs, translate brazilian portuguese (#708)

Co-authored-by: Sergei Predvoditelev <sergei@predvoditelev.ru>

* Release version 1.4.0

* Prepare for next release

* Merge fixes

---------

Co-authored-by: Ihor Sychevskyi <arhell333@gmail.com>
Co-authored-by: Alexey Rogachev <arogachev90@gmail.com>
Co-authored-by: Alexander Makarov <sam@rmcreative.ru>
Co-authored-by: StyleCI Bot <bot@styleci.io>
Co-authored-by: Luiz Marin <67489841+luizcmarin@users.noreply.github.com>
Co-authored-by: Danil Arduanov <rylezz@gmail.com>
Co-authored-by: Dmitriy Derepko <xepozz@list.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:code review The pull request needs review. type:feature New feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants